const path=require("path");
const HtmlWebpackPlugin=require("html-webpack-plugin");
const webpack=require("webpack");
const VueLoaderPlugin = require('vue-loader/lib/plugin');
const NODE_ENV=process.env.NODE_ENV;  //环境变量
module.exports={
    //工作模式
    //入口文件
    entry:"./src/main.js",
    //出口文件
    output:{
      //输出的文件的名称
        filename:"[name]-[contenthash:8].build.js",
        //指定文件所在目录
        path:path.resolve(__dirname,"dist"),
    },
  
    module:{
      rules:[
        {
          test:/.js$/,
          use:{
            loader:"babel-loader",
            options:{
              presets:[
                ["@babel/preset-env",{modules:false}] //会与tree shaking冲突 
              ]
            }
          }
        },
        {
          test:/.css$/,
          use:["style-loader","css-loader"]
        },
        {
          test:/\.less$/,
          use:["style-loader","css-loader","less-loader"]
        },
        {
          test:/.vue$/,
          use:"vue-loader"
        },
        {
          test: /\.(png|jpg|gif)$/i,
          use: [
              {
                loader: 'url-loader',
                options: {
                  limit: 8192,
                  esModule:false  //使用esmodules
                }
              }
             ]
        }
      ]
    },
    // optimization:{
    //   usedExports:true,// 不打包代码中未引用的部分
    //   concatenateModules:true,//合并模块  w
    
    // },
    plugins:[
      
        new webpack.DefinePlugin({
          BASE_URL:'"/public/"',
          'process.env': {
             NODE_ENV: NODE_ENV
          }
        }),
        new VueLoaderPlugin(),
    ]

}